/*
 * File:   MFQS.h
 * Author: Adrienne
 *
 * Created on November 5, 2010, 9:49 PM
 */

#ifndef MFQS_H
#define	MFQS_H

#include <iostream>
#include <string>
#include "Scheduler.h"

using namespace std;

class MFQS : public Scheduler{
public:
    MFQS() : Scheduler() {};
    MFQS(int queues, int aTime, int quant, Process * pArray);
    ~MFQS() {};


    void run();
    virtual void scheduleProcesses();
    // will you need this if you're inheriting run() and scheduleProcesses()?
    void runProcess(Process * currentProcess, int q, int quant, int currentRemaining);



private:
    // class vars
	int numQueues;
	int ageTime;
	int quantum;
        int totalWait;
        int totalTurnaround;


	// what are these for?
	int startTime;
	int endTime;
        int processCount;
	//int currentBurst; -> just use currentProcess.getBurst()
	queue<Process> * queueList;
	queue<Process> holdingQueue;

};

#endif	/* MFQS_H */
